                               madNES
                            NES emulator
                         by Roberto Rosario
                      email: skeletor@iname.com
       homepage: http://members.tripod.com/~r_rosario/madnes.htm

What's new
==========

-- V.xx BETA 5
      * Improved mapper 8, it is now playable & scrolling is Ok.
      * More speed, about 10fps.
      * Support for multiple state save files (up to 25) use keys F8 & F9 to
        select slot.
      * Changed the frameskip key to - or +.
      * Much better support for mapper 16, IRQ support is buggy.
      * Preliminary support for mapper 17, IRQ support is buggy.
      * Preliminary support for mapper 19.
      * Preliminary support for mapper 21, gfx corrupted.
      * Preliminary support for mapper 23, most games should work ok.
      * Preliminary support for mapper 33, most games should run.
      * Preliminary support for mapper 34, no games work yet.
      * Preliminary support for mapper 66.
      * Preliminary support for mapper 71, no games work yet.
      * Preliminary support for mapper 78, untested.
      * Preliminary support for mapper 79, most games should work.
      * Preliminary support for mapper 91, no games work yet.
      * Fixed snapshot code when the game name was less than 5 letters long.
      * The snapshot code now clips correctly the leftmost 8 bits when the
        game lowers the screen resolution.
      * Fixed savegame code not saving the battery RAM on some games.
      * The new gfx engine is about 70% complete almost every game's
        screen is interpreted correctly, even the complex ones (Isolated
        warrio, skate or die, road blaster).
      * Bug fixes to Mapper 11.

-- V.xx BETA 4
      * Found out what broke Astyanax and some other games.
        Use the D key to toggle between modes of operation.
        Games affected: Akira, Astyanax, Burai fighter.
      * Removed the tile based engine.
      * Snapshot can now be saved using the first 5 letters of the gamename.
        Use the option snapname from the INI file.
        snapname = 2 for the format RCPRO001.PCX (Where RCPRO is the game name)
        snapname = 1 for the format madNE001.PCX (The old way)
      * Replaced Allegro's timer functions with C's uclock() function.
        Portability is increased, these changes also prepare the way for
        autoframeskiping.
      * Added support for ZIP files.
        -How it works, ie:
          1) madNES smario.nes - looks for a game named smario.nes
             (Standard way)
          1) madNES smario.zip - looks for a game named smario.nes inside
             smario.zip. (Ideal for one ROM per ZIP file)
          2) madNES -zipfile nesgames.zip smario.zip - looks for a game named
             smario.nes inside nesgames.zip. (Ideal for many ROMs per ZIP
             file)
      * Increased snapshot limit from 99 to 999.
        Will overwrite snapshots with the old format if present.
      * Fixed bugs in mappers 2 & 3 modules (bit masks)
        Metal gear works again.

-- V.xx BETA 3

      * Perfect scrolling & splitscreens in Ducktales, Zelda2, Crystalis
        Yonoid, Little Nemo, Kirby's adventure, Ninja gaiden's cinemas
        are now perfect, Battle toads scrolls better.
        Astyanax is the only game this change broke.
      * Mapper 15 is now 100%
      * 640x480 mode centered.
      * Zelda's vertical scrolling is starting to work.
        Zelda's scoreboard no longer flicker.
        Super mario's scoreboard no longer flickers.
        Kirby's adv scoreboard now appears.
        The SNK logo on Crystalis now appears correctly.
        Little Nemo
      * Improvements to PPU
        Friday the 13th's paralax scrolling no longer gets out of sync.
        Crystalis playfield scrolling is a bit more stable.
      * Improved mapper 4,5,9.
      * Compiled with GCC 2.8.1
      * Compiled using Allegro 3.0 + WIP May 30
      * Preliminary mapper 5 support.
      * Added mapper 8 support.
      * Sprite priorities are now emulated a 100%. Still one bug to kill.
      * Removed the full screen graphic engine as it was no longer
        required.
      * The clear screen PPU flag is now emulated correctly.
        Final Fantasy 1 now fades in & out correctly.
        Joust.
      * Added 32k bank switch support to the mapper 1.
        KidNiki now works.
      * Adjusted the sound constants & frequencies.
        Most games sound better, but a few freqs. are still off.

Introducion
===========
madNES is an emulator for the Nintendo Entertainment System written entirely
in ANSI C.  It's compiled using DJGPP,  and Allegro is currently
used to drive the graphics engine also SEAL is currently used for sound.
Although madNES is MS-DOS based, the source code is very modular and rather
easy to port. This emulator is freeware, meaning that you don't have to pay
anything to own it and that you can distribute it free of charge, as long as it
remains unmodified and no games are included with it.
   
Usage
=====
From the command line type:

madnes [options] <NES game>
options:
  -frameskip #       # of frames to skip.

  -gameinfo          Display games stats when loaded.

  -gamegenie         Enter Game Genie(tm) code (may enter more than one).

  -resolution #      Selects from predefined resolutions.
   1: VGA   320x200
   2: MODEX 256x240
   3: SVGA  640x480
   4: VESA  320x240
   5: VGA   256x256 w/ scanlines
   6: VGA   256x256

  -hblank            Specifies the number of cpu cycles per scanline.

  -volume            Sets the master volume.

  -nosound           Disables sound emulation.

  -?                 Show usage syntax.

Or type madNES without specifing a game to go to the front end directly
(if the GUI is enabled).

Once madNES is running:

NES pad 1 
---------
Up       - Up arrow keys
Down     - Down arrow keys
Left     - Left arrow keys
Right    - Right arrow keys
B        - Alt
A        - Ctrl
Start    - Enter
Select   - Space

NES pad 2
---------
Up       - Home
Down     - End
Left     - Delete
Right    - Page Down
B        - Y
A        - U
Start    - I
Select   - O

other
---------------
ESC - Toggles between the GUI and the emulator (if the GUI is enabled).
Ctrl + X - Exits madNES.
Ctrl + S - Switches the graphic engine.
Ctrl + R - Resets the emulated game.
Ctrl + G - Toggles between Control pad #2 and Lightgun.
F2 - Save current game state.
F3 - Load game state.
F4 - Decrease volume.
F5 - Increase volume.
F6 - Decrease hblank.
F7 - Increase hblank.
F8 - Decreases the state save slot.
F9 - Increases the state save slot.
F11 - Show the frames per second counter.
F12 - Saves a screenshot in the PCX or JPEG format (madNExxx.pcx or
      madNExxx.jpg).
+   - Increases the frame skip.
-   - Decreases the frame skip.

